--- mod_geoip.c.geoip
+++ mod_geoip.c
@@ -66,6 +66,7 @@
 #include "http_config.h"
 #include "http_protocol.h"
 #include "http_log.h"
+#include "util_script.h"
 #include "ap_config.h"
 #include "apr_strings.h"
 #include <GeoIP.h>
@@ -320,7 +321,11 @@
 		return DECLINED;
 
 	if (!cfg->scanProxyHeaders) {
+#if AP_MODULE_MAGIC_AT_LEAST(20111130,0)
+		ipaddr = r->useragent_ip;
+#else
 		ipaddr = r->connection->remote_ip;
+#endif
 	}
 	else {
 		ap_add_common_vars(r);
@@ -338,7 +343,11 @@
 		}
 		if (!ipaddr_ptr) {
 			ap_log_error(APLOG_MARK, APLOG_DEBUG | APLOG_NOERRNO, 0, r->server, "[mod_geoip]: Error while getting ipaddr from proxy headers. Using REMOTE_ADDR.");
-			ipaddr = r->connection->remote_ip;
+#if AP_MODULE_MAGIC_AT_LEAST(20111130,0)
+			ipaddr = r->useragent_ip;
+#else
+	                ipaddr = r->connection->remote_ip;
+#endif
 		}
 		else {
 			ap_log_error(APLOG_MARK, APLOG_DEBUG | APLOG_NOERRNO, 0, r->server, "[mod_geoip]: IPADDR_PTR: %s", ipaddr_ptr);
